package com.zeny.coding.service;



import com.zeny.coding.dto.*;

import java.util.List;

public interface CourseService {
    /**
     * <h2>分页查询</h2>
     * @param pageInfo
     **/
    void list(PageDto<CourseDto> pageInfo);

    /**
     * <h2>保存课程</h2>
     * @param courseDto
     **/
    void save(CourseDto courseDto);

    /**
     * <h2>修改课程</h2>
     * @param courseDto
     **/
    void update(CourseDto courseDto);

    /**
     * <h2>根据id查询课程</h2>
     * @param id
     **/
    CourseDto findById(String id);

    /**
     * <h2>根据id删除课程</h2>
     * @param id
     **/
    void deleteById(String id);

    /**
     * <h2>更新课程的总时长</h2>
     * @param id
     **/
    void updateTime(String id);

    /**
     * <h2>更新排序</h2>
     *
     * @param sortDto
     **/
    void updateSort(SortDto sortDto);

    /**
     * <h2>查询[num]门最新发布的课程</h2>
     * @param num
     **/
    List<CourseDto> list(Integer num);

    /**
     * <h2>条件查询,带条件</h2>
     * @param dto
     **/
    void pageQueryByCondition(WebCoursePageDto dto);

    /**
     * <h2>根据id查询课程【包括课程信息，大章，小节，教师】</h2>
     **/
    WebCourseDetailDto webCourseDetail(String id);
}
